Information and advertising distribution system and method

ABSTRACT

In summary, the present invention is an information and advertising distribution system. A data server stores and updates a database of information items and advertisements. The information items and advertisements are each categorized so that each has an associated information category. Workstations remotely located from the data server each include a display device, a communication interface for receiving at least a subset of the information items and advertisements in the data server&#39;s database and local memory for storing the information items and advertisements received from the data server. An information administrator In each workstation establishes communication with the data server from time to time so as to update the information, items and advertisements stored In local memory with at least a subset of the information items and advertisements stored by the data server. An information display controller in each workstation displays on the workstation&#39;s display device at least a subset of the information items and advertisements stored in local memory when the workstation meets predefined idleness criteria. At least a subset of the workstations include a profiler for storing subscriber profile data. The subscriber profile data represents subscriber information viewing preferences, indicating information categories for which the subscriber does and does not want to view information items. The information display controller includes a filter for excluding from the information items displayed on the display device those information items inconsistent with the subscriber profile data.

BACKGROUND OF THE INVENTION

[0001] The use of advertising revenues to pay for information dissemination is well established in domains such as television and radio in which end users are tuned to a continuous signal over a lengthy period of time. In such systems, due to the continuous nature of the signal being monitored by the end users, the end users are sufficiently similar to a “ocaptive audience” that many or most end users remain tuned to the same signal even when the main program to which they are listening or viewing is interrupted by advertisements.

[0002] Another example of advertising mixed with information dissemination is the use of scrolled text at the bottom of a television of computer screen, where the main program occupies most of the end user's visual field and a smaller portion is occupied by advertisements and the like on a “scroll bar” or similar visual device along the periphery of the screen. In some contexts, such as cable television channels that display a “stock ticker tape,” this relationship is reversed: the information portion of the screen occupies a small part of the screen, such as horizontally scrolling image region at the top or bottom of the display and the remainder of the screen is occupied by advertisements, “infomercial” and the like.

[0003] Yet another example of mixing advertisements with information dissemination are newspapers and magazines.

[0004] Most, and perhaps all such examples of mixing advertisements with information content are based on systems in which the end user has actively elected to view or listen to a program or to otherwise receive information. Furthermore, in virtually all such systems or media, the juxtaposition or placement of advertisements and information content is explicitly programmed or determined by human beings working as “editors” or in a similar content and/or presentation editing capacity.

[0005] Up until the present, distributing information via the Internet or other publicly accessible computer communication networks has been largely unsupported by advertising revenues due to the lack of good mechanisms for mixing advertising and information content in such a way as to be acceptable to both end users and advertisers. There are, of course, some exceptions where advertising/content mixtures from other contexts, such as newspapers and television, have been simply replicated on the Internet. For instance, some newspapers have been “published” at least in part on the Internet, and include advertisements along with information content. In fact, some newspapers sell advertising space on an associated World Wide Web (WWW) site, which often includes extensive listings of certain types of advertisements such as real estate advertisements, personal advertisements, and so on. Similarly, the scroll bar type advertisement at the bottom of a computer screen is based on similar advertising techniques used in cable television and other television contexts.

[0006] There are also examples of computer programs which contain advertisements. In all such examples known to the inventors, the advertisements are either permanently embedded In the computer programs or reside permanently with computer programs such that they cannot be easily updated.

[0007] The present invention addresses a problem prevalent in electronic information distribution systems. In particular, “on line” newspapers and magazines are notoriously difficult and tedious to read. Graphics and animation and full motion video, all techniques widely used in television news programs, require substantial data transmission bandwidth. Such data transmission is expensive both in terms of communications bandwidth (capacity) and time. In non-computer publishing such as printed magazines and newspapers, graphics are often used to make reading less difficult and tedious. In television the majority of information is delivered with movement (animation), although graphics are also often used.

[0008] The use of large bandwidth data transmissions is not economically practical in the context of data dissemination via the Internet and other computer networks, although the cost of such data transmissions will undoubtedly continue to decrease. As a result, graphics and animation have typically received relatively little use in computer network based information dissemination systems.

[0009] The present invention mixes advertising and information content dissemination in a manner unlike the examples mentioned above.

[0010] It is a goal of the present invention to disseminate information and advertisements to subscribers' computers in a system where the information and advertisements are automatically displayed when the subscriber's computer is on but meets predefined idleness criteria. For example, the predefined idleness criteria could be the failure to receive any input for a period of at least five minutes.

[0011] Another goal of the present invention is to automatically update each subscriber's local database of news stories at least once per day, and preferably multiple times per day so as to present subscribers with timely information.

[0012] Another goal of the present invention is present news stories and advertisements in a dynamic and easy to read manner.

[0013] Another goal of the present invention is to categorize news stories and advertisements, and to display advertisements associated with each category at the same time that new stories associated with same category are displayed, thereby providing a “targeted” audience for advertisers.

[0014] Another goal of the present invention is provide each subscriber with the ability to set up and change a user profile indicating categories and subcategories of topics which are of interest and not of interest to the subscriber, and to select the news stories displayed on the subscriber's computer accordingly.

[0015] Yet another goal of the present invention is to divide news stories into at least two portions, a preliminary portion and a secondary portion, where the preliminary portions of news stories are automatically displayed during idle periods, and this secondary portions are displayed only upon subscriber request.

SUMMARY OF THE INVENTION

[0016] In summary, the present invention is an information and advertising distribution system. A information server stores and updates a database of information items and advertisements. The information items and advertisements are each categorized so that each has an associated information category. Workstations remotely located from the information server each include a display device, a communication interface for receiving at least a subset of the information items and advertisements in the information server's database and local memory for storing the information items and advertisements received from the information server. An information administrator in each workstation establishes communication with the information server from time to time so as to update the information items and advertisements stored in local memory with at least a subset of the information items and advertisements stored by the information server. An information display controller in each workstation displays on the workstation's display device at least a subset of the information items and advertisements stored in local memory when the workstation meets predefined idleness criteria.

[0017] At least a some of the workstations include a profiler for storing subscriber profile data. The subscriber profile data represents subscriber information viewing preferences, indicating information categories for which a subscriber associated with the workstation does and does not want to view information items. The information display controller includes a filter for excluding from the information items displayed on the display device those information items inconsistent with the subscriber profile data.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Additional objects and features of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which:

[0019]FIG. 1 is a block diagram of an information and advertising distribution system in accordance with the present invention.

[0020]FIG. 2 is a block diagram of a subscriber's computer in the information and advertising distribution system of FIG. 1.

[0021]FIG. 3 schematically depicts the procedures and data structures in a set of category managers.

[0022]FIG. 4 schematically depicts a user profile data structure stored in a subscriber's computer to store status and configuration information for a particular subscriber and workstation.

[0023]FIG. 5 schematically depicts the dialog box used to define the user profile for one information category.

[0024]FIG. 6 schematically depicts a display generated on a subscriber's display device using the screen saver procedure in a preferred embodiment of the present invention.

[0025]FIGS. 7A and 7B schematically depicts the dialog box used to define a display script and the resulting data structure.

[0026]FIGS. 8 and 9 schematically depict data structures stored in a subscriber's computer to indicate advertisements and news stories available for display in various information categories.

[0027]FIG. 10 schematically depicts a display generated on a subscriber's display device using a data viewer procedure in a preferred embodiment of the present invention.

[0028]FIG. 11 depicts the relationships between various processes in the information server.

[0029]FIG. 12 is a flow chart depicting the procedure for updating the local database and software modules of a subscriber's computer.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0030] Referring to FIG. 1, there is shown a computer based information and advertising distribution system 100 having many client computers 102 and at least one information server computer 104. Client computers are often called “subscribers' computers” in the present document, and the terms “subscriber computer” and “client computers” will be used synonymously. In many instances, a set of subscribers 102 will be located within a common local area network (LAN) 106, and are connected to a LAN server 108.

[0031] In the preferred embodiment, each subscriber's computer 102 is connected to the information server 104 via the Internet 119 for a small fraction of each day. Other forms of electronic communication connections, including private wide area networks similar to CompuServe, America OnLine or Prodigy, can be used to connect subscribers' computers to the information server 104 in alternate embodiments of the invention.

[0032] While most client computers are desktop computers, such as IBM compatible computers and Macintosh computers, virtually any type of computer can be a client computer so long as it can support the “screen saver” mode of operation of the preferred embodiment.

Information Server

[0033] The information server 104 includes a central processing unit 110, primary memory 112 (i.e., fast random access memory) and secondary memory 114 (typically disk storage), a user interface 116, an Internet interface 118 for communication with the client computers 102 via the Internet 119, and one or more news wire interfaces 120 for receiving news feeds from information transmission services such as the AP news feed, the DOW news feed and various sports news feeds. An information editor 130 is used, typically under the direction of a person using the user interface 116, to select news stories received from the new feeds and to edit and format the news stories into a form suitable to dissemination to subscribers' computers using the present invention. The selected and edited news stories 132 are stored in an information database 134 in the information server 104.

[0034] In the preferred embodiment, the information editor 130 is used to assign each news story to an information category and, where appropriate, to also assign the news story to one or more sub-categories. The information editor maintains a list of the currently defined categories and sub-categories. The category list can be updated by the personnel operating the information server, typically to add and delete special new categories associated with major news events such as a famous trial or event which generates many news stories. The category to which each news story is assigned is represented in one or more Data Access Tables 136.

[0035] The Information editor 130 is also used to divide most news stories into two components or portions: a primary component or portion and a secondary component or portion. The primary component is what is displayed on a subscriber's workstation when the subscriber's workstation is turned on but has been idle, while the secondary component is what is displayed, along with the primary components only upon a subscriber's request. For instance, as will be described below, there are number of ways in which a subscriber can request the display of the “full texts” of a news item (which may include photographs and the like). For convenience, the primary component of each news story is sometimes herein called the “headlines”, even though ft will often contain more information than just the headline of the news item, and the secondary component of each news story will sometimes be called the “body.”

[0036] Advertisements 138 are also stored in the information database 134 and each advertisement is assigned to at least one of the predefined information categories. Each advertisement is displayed on subscribers' workstations simultaneously with news items assigned to the same category as the advertisement. When an advertisement is assigned to multiple categories, it is treated in most respects as several advertisements each assigned to one category, except that only one copy of the advertisement is actually stored.

[0037] Next, the information database in the server computer includes a set of images 140 used during the display of news items and advertisements. For instance, different “wallpaper” or background images may be useful when displaying news items in various types of information categories. As an example, the images 140 include three fixed images for indicating that the stock market has risen, fallen or stayed largely unchanged. Then, depending on what has happened to the stock market on any particular day, information concerning the amount of change in the stock market during the relevant time period, and sometimes other associated information, is superimposed on a selected one of those fixed images. Other images stored in the information database include various “actors” that can be moved around the display with the news items when the system is in screen saver mode.

[0038] The information. database 134 also stores a set of “display scripts” 142. A script controls the display of news items and advertisements, typically displaying a selected number of news items and one advertisement for a period of 30 seconds. A script determines the number of news items displayed, determines the positions of the news items and advertisement on the display, determines any movement of the news items around the displayed image, and determines what background image or images are displayed in conjunction with the news items.

[0039] An important concept associated with the present invention is that constantly varying the presentation of news items and advertisements, through the use of a rotating set of scripts, makes it easier for subscribers to read the news headlines and advertisements being presented. In a preferred embodiment, at least two distinct scripts, and preferably three or more distinct scripts are provided for most information categories, with a total of at least ten different scripts being used. Most scripts can be used with multiple categories of news items. The procedure for defining display scripts and the associated data structure are described below with reference to FIG. 7A.

[0040] The information database 134 also stores software modules 144 for downloading to subscribers' computers. The information administration management procedures and information viewing procedures in subscribers' computers will need updating and upgrading from time to time. The new versions of these software procedures are stored in the information server's information database 134 for downloading into the computers of subscribers at the same time that the information items or advertisements in the subscriber computers' information database 184 is updated. Since numerous types of subscriber computers are supported, the server's information databise 134 will typically store a set of updated software modules for each of the supported types of computers.

[0041] Finally, the information database 134 includes advertising display statistics 148 and news item display statistics 149. The display statistics are collected from the subscribers' computers when the subscribers' computers call in for updated news stories and the like. Advertising display statistics indicate how many times each advertisement has been displayed on subscribers' computers. In a preferred embodiment, display statistics for each advertisement are divided into a display count for displaying during data viewer usage, a display count for other display instances, and an indication of each advertisement the user has interacted with, such as by “cliking” on the advertisement to connect to the advertiser's World Wide Web page. News item display statistics 149 concern how much time the subscriber spent viewing each non-advertising item in the data viewer as well as the amount of time the screen saver was active for each information category.

[0042] Other procedures stored in the information server's secondary memory are a router procedure 150, application server procedures 152, and data server procedures 154. The utility of these procedures is explained below with reference to FIGS. 8 and 9.

Subscriber's Workstation

[0043]FIG. 2 is a schematic representation of the subscriber's workstation or computer 102 that is not connected to the information server 104 via a LAN server. For subscribers' workstations connected to the information server 104 via a LAN server 108, FIG. 2 is representative of the LAN server, but the display device used by each such subscriber's computer to view news items and advertisements is part of the subscriber's workstation rather than the LAN server 108.

[0044] The subscriber workstation 102 includes a central processing unit 170, primary memory 172 (i.e., fast random access memory) and secondary memory 174 (typically disk storage), a user interface 176, and an Internet interface 178 for communication with the information server 104 via the Internet 119. In this document, whenever the phrase “clicking on X” is used, that phrase means a subscriber selecting the X image on a display device by positioning a pointer image over the X image, using the subscriber computer's mouse or trackball device, and then depressing a button or key to indicate selection of the X image.

[0045] An administration manager 180 schedules and controls all communications with the information server 104. The administration manager 180 includes a connection scheduler 181 that initiates the execution of a connection manager 182 that handles communications with the information server as well as the integration of information and software procedures received from the information server into the information and software procedures stored in the client computer.

[0046] The workstation's secondary memory is used to store a local information database 184 that includes news stories 183, advertisements 188, images 190 and display scripts 192. In each case the workstation's secondary memory stores at least a subset of the corresponding items stored in the Information server 104. The amount of information stored in the workstation's secondary memory depends on the amount of secondary memory available for storing such information, as well as a user profile 194 for the subscriber that indicates which categories and subcategories of news stories are of interest to the subscriber.

[0047] Data Access Tables 186, which are discussed in more detail below with reference to FIGS. 5 and 6, are used to access news stories, advertisements and display scripts associated with each of the categories of news items that are to be displayed on the subscriber's workstation.

[0048] Screen Saver and Viewer Procedures 200 are a set of procedures for controlling the display of news stories and advertisements. These procedures. include a main screen saver procedure 201, category managers 202, an animation engine 204, a profiler 206, a data viewer 208 and an advertisement display statistics generator 210.

[0049] Each of the category managers 202 is a collection of programs and data associated with particular information categories. In the preferred embodiment there is a separate category manager for each information category, although in some cases it may be more efficient to use the same category manager for two or more information categories.

[0050] Referring to FIG. 3, each category manager 202 includes a category profiler 202A, a category profile data structure 202B, one or more display drivers 202C for viewing items in the corresponding information category with the data viewer, a sprite generator 202D generating images displayed by the screen saver procedure, and an update manager 202E.

[0051] The category profiler in each category presents a category profile dialog to the subscriber to determine the subscriber's interest in receiving information relating to particular subcategories. Subcategories may relate to specific companies, geographic regions, specific sports and sports teams, and so on, depending on the category. The result of the decisions made by the subscriber during the category profile dialog is stored as a category profile data structure.

[0052] The update manager in each category handles the process of updating the local information database with new items from the information server for that information category as well as the deletion of all items and the rebuilding of the portion of the data access tables used to control access to the information items, advertisements and display scripts in that information category.

[0053] The display drivers in each category manager are customized to generate images specifically needed in the corresponding categories. For instance, in the category manager for the sports category, the display driver includes instructions for generating a simulated scoreboard which is automatically updated every few seconds to show a sequence of game scores or contest outcomes in various sporting events. In another example, the display driver for the weather category includes instructions specifically designed for efficiently displaying weather maps and other weather information.

[0054] Referring once again to FIG. 2, the animation engine 204 interprets a currently selected display script and controls the display of a selected set of news stories and an advertisement in accordance with the instructions in the currently selected display script.

[0055] The profiler 206 is actually a set of procedures that define and update the subscriber's user profile 194. Referring to FIG. 4, in the preferred embodiment, the user profile 194 includes:

[0056] a subscriber identifier 212;

[0057] a connection password 213 used in conjunction with the subscriber identifier when connecting to the information server to identify the calling computer as a registered subscriber;

[0058] subscriber hardware and software configuration information 214 that identifies for the information server hardware and software information needed to determine the type of software and image files that are compatible with the subscriber's computer;

[0059] a connection schedule 215 that specifies to the connection scheduler 181 within the administrative manager 180 how often the subscriber's computer should connect to the information server 104 to update its information database 184;

[0060] category and subcategory preferences information 216 that identifies categories and subcategories of news stories that the subscriber does not want to view, as well as a list of “special categories” of news stories of special interest to the subscriber which override any categories noted as not being of interest to the subscriber;

[0061] timestamps 217 a-217 c indicating the time of the last updates to the subscriber computer's locally stored set of news stories, advertisements and administrative files (including scripts, images and software modules);

[0062] advertising and news item display statistics 218;

[0063] screen saver information 219 indicating the last displayed information category and the last displayed advertisement and, news items in each information category are stored in a portion of the user profile 194 not transmitted to the information server; and

[0064] a screen saver exit mode indicator 220, indicating what actions cause the screen saver procedure to terminate and what actions cause the data viewer 208 to be executed.

[0065] The default connection schedule is for the subscriber's computer to initiate a connection to the information server once during the middle of the night (e.g., a randomly selected time between 11 p.m. and 7 a.m. local time) for an “administrative update,” and once every four hours during the rest of the day for “news story updates.” During the administrative update connection, the set of advertisements, scripts and images in the subscriber computer's local information database are updated as necessary, and any software upgrades are also downloaded onto the subscriber's computer. During both “administrative update” and “news story update” connections, the news stories in the subscriber computer's local information database are updated. At the option of the information server's system operator, script and/or software updates can be made during “news story update” connections, especially when a malfunction has been detected in previously distributed scripts or software.

[0066] In one preferred embodiment, the profiler 206 can be used to specify a connection schedule other than the default schedule. For instance, if the subscriber's computer is typically turned off at night, the administrative update connection may be scheduled to occur (A) during the subscriber's typical lunch time, or (B) once per day when the subscriber's computer has not received any user input for a specified minimum period of time (e.g., ten minutes) that indicates the subscriber is away from his/her computer.

[0067] The downloading of advertisements (which are typically images), fixed Images used by display scripts, and software modules is preferably performed during the night or long periods of user inactivity because images and software modules are typically much larger than the news items, which are primarily text data. Images, including advertisements, and software modules are compressed using well known data compression techniques to make the download transmissions as time efficient as possible. Even so, downloading images is a time consuming process. For instance, downloading two high resolution advertisement images having pixel sizes of, say, 400×300 pixels each, even when using data compression, will typically take over two minutes using conventional 14.4K baud modems. By way of contrast, downloading a dozen news stories and corresponding database base update instructions will typically take less than fifteen seconds of connection time using conventional 14.4K baud modems. Therefore, updating the local database's set of news items can be accomplished relatively unobtrusively even while the subscriber is using his/her workstation, while updates to the advertisements and fixed images in the local database take longer and are therefore more intrusive.

[0068] It is noted that the secondary portions of news items can also include images, such as photographs that accompany the text of a news story. The transmission of such news story images can significantly increase the amount of connection time required for news item updates, and thus most news stories in the preferred embodiment do not use images, and every effort is made to transmit those news stories that have images to subscribers' computers during the overnight administrative update rather than during the daytime news item updates.

[0069] The data viewer 208 is a program for viewing news items that the subscriber specifically wants to read. The data viewer 208 can be executed at the subscriber's explicit command, and can also be launched from the screen saver if the user indicates he/she wants to read a news story shown in the screen saver display. This is explained in more detail below.

[0070] The display statistics generator 210 keeps tracks of how many times each advertisement in the local information database has been displayed since the last time advertisement display statistics have been transferred to the information server. The display statistics generator 210 also keeps track of how many times each news item has been displayed in the same time period. These display statistics are stored in the user profile 194 at 218. In the preferred embodiment, the advertisement display statistics, and news items display statistics, are transferred to the information server once per day during a connection also used to update the subscriber computer's information database. In alternate embodiments, the advertisement display statistics could be transferred more often (e.g., every time the subscriber's computer connects to the information server) or less often (e.g., once per week).

Category Profiler Dialog

[0071] As mentioned earlier, each of the category managers includes a profiler procedure for defining the subscriber's interest in receiving news items within each information category. An example of the profile definition dialog generated by a category profiler, for the Sports category, is shown in FIG. 5. In this example, the Sports Definition Profile dialog box 222 includes, on the left side, a scroll box 223 in which the user can select and deselect subcategories of sports information by clicking on boxes next to the listed subcategories. A “Select All” button in the dialog box can be used (i.e., by clicking the subscriber computer's mouse or trackball device on the image of the box) to select all subcategories, and a “Deselect All” button can be used to indicate that the subscriber does not want to receive any news hems for the Sports category. For each subcategory, either an “include only” or an “exclude” fiter (but not both) can be defined where the user types in key words to be used to select (for the include only) or deselect news items within that subcategory. For instance, if the subscriber types in the words “49ers, Rams” in the box for the include only filter for the “football news” subeategory, only news items using either of those words will be shown to the subscriber.

[0072] The category manager profile procedure generates a category profile data structure 202B that represents the subcategories of interest to the subscriber as well as any associated filters that have been defined.

Display Script Definition Procedure

[0073] Referring to FIG. 6, there is shown in outline form a snapshot of typical display generated by the screen saver procedure of the present invention. On this particular exemplary display are shown three news story “headlines” 230 a-232 c and one advertisement image 232. Each of the headlines 230 is an image representing the text of the “primary component” of a news items, as explained above. While the image shown in FIG. 6 appears static, in the preferred embodiment the display script that controls the display of the headlines and advertisement can and most often does contain instructions for continuously moving the headline images around the screen.

[0074] The display scripts also mix fixed images with the headline images to create varied and interesting displays. In one example of a display script, cartoon characters appear to move the headlines around. In another example of display script, the background behind and surrounding the headlines is a sequence of fixed images such as pictures of peaceful landscapes, while the headlines gently float around the portions of the display not occupied by the advertisement image 232.

[0075] Referring to FIG. 7A, the preferred embodiment provides an easy to use dialog 234 for display script definition. A display script consists of definitions for two or more actors, plus an optional definition of a background image, called the wallpaper image. Each “actor” represents a sprite, which is a displayable image, that can move around the screen and whose size can vary dynamically. An new actor is initially defined by selecting the “new actor” command in the Actor menu, as shown in FIG. 7A, and then entering a text string (shown in box 235) that specifies (A) the sprite generator procedure to use to generate the image for the actor, (B) the source of the information to be displayed, (C) the nominal width and height of the sprite (e.g., in units of pixels), and (D) any optional parameters that are specific to the specified sprite generator (e.g., a font may be specified for the News information category's sprite generator, whereas a font designation parameter may be meaningless for other ones of the sprite generators).

[0076] In the preferred embodiment, the specified sprite generator must be either the static sprite generator that is part of the animation engine 204, or is any specified one of the sprite generators 202D in the category managers 202. In an alternate embodiment, additional sprite generators may be provided by the animation engine 204, such as an animated sprite generator for successively displaying a sequence of images to simulate a motion. The source of information to be displayed is either a static image, in the case of the static sprite generator, or information items in a specified information category. For instance, the parameter “NextHL” in an actor definition indicates that the information to be displayed in the corresponding sprite is the next headline in the information category corresponding to the specified sprite generator for the actor. In another example, the parameter “NextAd” in an actor definition indicates that the information to be displayed in the corresponding sprite is the next advertisement image for the information category corresponding to the specified sprite generator for the actor.

[0077] The second stage of defining a sprite is to define its position and size at one second intervals, for 30 seconds in the preferred embodiment. The position of the sprite for a particular time can be defined by either typing in an X,Y, or by selecting a box representing the sprite with the user interface and then moving it to a position on a simulated display screen 236. The size specification for the sprite at each time is a percentage of the sprite's nominal size (e.g., “size=120” indicates the sprite is to be displayed at 120% of its nominal size). The full definition for a sprite includes thirty X,Y, size tuples for a thirty second screen saver display period. In a typical display script, nor more than one advertisement, three news items and two static images are used because the resulting display will be excessively busy, although the display script definition procedure allows a virtually unlimited number of sprites to be specified.

[0078] The data structure 237 representing each display script is shown in FIG. 7A: a header specifying the script's name, the number of actors defined in the script, an optional Wallpaper definition, and a list of all static images referenced by the script; plus a set of Actor definition arrays.

[0079] The screen save procedures interpret each display script and generate an animated display for 30 seconds based on the script. During display, the image corresponding to each actor is moved and sized in a virtually continuous manner, where the position and size of each sprite is linearly interpolated between the instantaneous position and size specifications for each second. During the display definition process, the sequence X,Y, size parameters for acurrently selected actor can be smoothed, to produce more fluid movement and size changes of the actor by selecting the “smooth path” command in the Actor menu.

[0080] Referring to FIGS. 7A and 7B, the person preparing a display script using the display script definition dialog 234 can see the movement and sizing of the actors in the simulated display screen 236 by selecting the simulate command in the File menu, which cause the boxes in the simulated display screen 236 to move and be sized in accordance-with the sequence of X,Y, size parameters for each specified actor.

[0081] While in the preferred embodiment advertisements are always simultaneously displayed with news items, in other embodiments advertisements and news items could be displayed sequentially. Computer programmers of ordinary skill in the art could modify the script definition dialog of the preferred embodiment, as described above, to define display scripts with sequential display of advertisements and news items.

Screen Saver Procedures

[0082] In the preferred embodiment, the screen saver procedures for displaying news items and advertisements are invoked using the same types of criteria as are used by other types of screen saver procedures. Generally, whenever the system detects a lack of user inputs via either keyboard or pointer device (e.g., a mouse or trackball) for a user configurable or otherwise specified length of time (e.g., 5 minutes), the screen saver procedures of the present invention begin the display of news items and advertisements from the local information database. In the preferred embodiment, the screen saver procedures display news items and advertisements for a sequence of information categories in a sequence of 30 second time slots.

[0083] More specifically, under the control of the screen saver procedures, news stories and an advertisement assigned to a first information category are displayed using a first display script for 30 seconds, then news stories and an advertisement assigned to a second information category are displayed using a second display script for the next 30 seconds, and so on until news stories and an advertisement have been displayed in all the information categories indicated in the subscriber's user profile 194 as being of interest to the subscriber, at which point the process repeats with the first information category.

[0084] Referring to FIG. 8, news stories, advertisements and display scripts are stored in files or similar data structures which have assigned unique file names. Each news story (herein usually called a news item) is usually assigned to a single information category, although nothing in the system of the preferred embodiment would prevent a news story from being assigned to multiple information categories. Advertisements can be assigned to multiple information categories as can display scripts.

[0085] As shown in FIGS. 8 and 9, the advertisements assigned to each information category are organized, through the use of a set of data access tables 186, in a separate linked list so as to create a separate “queue” of advertisements for each information category. Similarly the news items and display scripts assigned to each information category are organized in separate linked lists so as to generate separate queues of news items and display scripts for each information category.

[0086]FIG. 8 includes an example of an advertisement (A001) assigned to two information categories (News and Sports). This advertisement is stored only once in the workstation's local hard disk, but is included in two of the linked lists of advertisements.

[0087] The basic procedure for determining what display script, advertisement and news stories to display during each 30 second time slot is shown in pseudocode form in Table 1. TABLE 1 Pseudocode Representation of Screen Saver Procedure Store, indication of last information category displayed, and for each category an indication of the last advertisement, news story and display script used. Do Until Screen Saver Mode is exited: { Select next information category (SIC). Select next display script (SDS) from queue of display scripts and next advertisement (SA) from queue of advertisements for the selected information category. Inspect selected display script to determine NN, the number of news items to be displayed. Select the NN next news items (SNI) from queue of news items for the selected information category. Update User Profile to indicate the last selected information category, and to indicate for the selected information category, the selected display script, advertisement and last selected news story. Call Animation Engine (SDS, SA, SNI) to display for the next 30 seconds the selected advertisement (SA) and news items (SNI) under the direction of the selected display script (SDS). Call Ad Display Statistics Generator to update displayed advertisement statistics to include the advertisement displayed during current screen saver display period. }

[0088] Each time the Screen Saver procedure 201 is invoked, it starts with the next information category after the last one to have been used, and starts with the next advertisement and news stories after the last ones used in that information category. The screen saver status information 219 indicating the last displayed information category and the last displayed advertisement and news items in each information category are stored in a portion of the user profile 194 not transmitted to the information server.

[0089] Execution of the Screen Saver procedure 201, like other screen savers. Is terminated and the subscriber's computer's display is returned to whatever was being displayed before the Screen Saver was executed, upon detection of certain types of user input. In the preferred embodiment, the user can use the profiler to select one of at least two exit modes: in a first mode, the Screen Saver procedure is terminated by hitting any key on the subscriber computer's user interface keyboard or by moving the user interface's mouse or trackball; in a second mode, the Screen Saver procedure is terminated by hitting any key on the subscriber computer's user interface keyboards but movement of the mouse or trackball does not cause the Screen Saver procedure to terminate. Rather, in the second screen saver exit mode, the subscriber can use the mouse or trackball to point to any of the news items being displayed and upon clicking one of the mouse or trackball's buttons, the data viewer 208 is executed with the news item selected by the subscriber being displayed.

[0090] When using the second screen saver exit mode, if subscriber user clicks on an advertisement, the subscriber's computer is automatically connected to the an associated World Wide Web page on the Internet that provides additional information from the advertiser. This is accomplished by World Wide Web connection and viewer procedures 211 (see FIG. 2) stored on subscriber's computer. Each advertisement is stored on both the information server and subscriber computers as a C++ data structure that includes (A) an image data array, typically representing a “GIF” format image, as well as (B) a list of static images (such as corporate logos and legends), if any, incorporated into the advertisement, and (C) a Web site address that is used by the World Wide Web connection and viewer procedures 211 to connect the subscriber to the advertiser's specified Web page when the subscriber clicks on the image of the associated advertisement.

Data Viewer

[0091] Referring to FIG. 10, the data viewer 208 is a program for viewing news items that the subscriber specifically wants to read. The data viewer 208 can be executed at the subscriber's explicit command, and as just described in the immediately preceding section of this document, the data viewer can also be launched from the screen saver when the subscriber indicates that he/she wants to read a news story shown in the screen saver display by “clicking” the subscriber's computer's mouse or trackball on that news story.

[0092] The news stories shown in the center section 248 of the data viewer's display is selected by first selecting an information category by clicking on any of the category buttons 250 on the left margin of the display, and a subcategory button 252, if any, on the bottom margin of the display, and then clicking on the article advance backward and forward buttons 254 to scroll through the news items in the selected information category. When a news item has more than one photo image associated with it, the subscriber can click on the photo advance backward and forward buttons 256 to scroll through the photos.

[0093] Each news item displayed in the center section 248 of the data viewer's display includes both the primary and secondary portions of the news item, thereby providing the subscriber in most instances with access to a fuller version of the news item than was shown by the screen saver. In the case of very short news items, the entire news item may be contained in its primary component. Furthermore, in client computers with very limited hard disk space available for storing, news items, as indicated by the user profile 194 for the client computer, the secondary component of news items may not be stored in the local information database in order to conserve disk space.

[0094] A portion of the data viewer screen is always occupied by an advertisement image 258. The advertisement image shown is selected on the basis of the information category associated with the news item being viewed. In a preferred embodiment, the advertisement shown in the data viewer screen is changed (A) every time the subscriber clicks on a category button 250 so as to select a different information category than the one previously selected, and (B) every 30 seconds when subscriber continues to view news items in a single information category for more than 30 seconds. The advertisements are selected in rotating order among the advertisements assigned to each information category, as described above for the screen saver procedure.

[0095] When using the data viewer, if subscriber use clicks on the displayed advertisement, the subscriber's computer is automatically connected to the an associated World Wide Web page on the Internet that provides additional information from the advertiser.

[0096] The Options button 260 is used to invoke dialog procedures in which the subscriber specifies general preferences, such as how quickly data scrolls in the scrolling windows, and which mode of screen-saver termination the subscriber prefers.

Connecting the Subscriber's Computer to the Information Server

[0097] Referring to FIGS. 11 and 12, the information server is preferably a set of computers interconnected by a local area network that each operate under a multi-tasking, multi-threading operating system such as Microsoft's Windows NT. The information server 104 has multiple “application servers” 272, which are processes run on one or more computers. Each application server 272 preferably has multiple threads, each of which can service one connection with a client computer at any one time.

[0098] A primary concern with the architecture of the information server is that the information be able to handle a very large volume of connection requests from client computers. The information server may need to service thousands of connection requests per hour, and thus efficient handling of each connection request is important.

[0099] In a preferred embodiment, during each connection of a subscriber computer to the information server, the information server sends a “next recommended download time” to the subscriber computer along with the other information being downloaded onto the subscriber computer. The server computer selects the next recommended download times sent to the various subscriber computers so as to spread their connection requests fairly evenly over time. In an alternate embodiment, connection requests are spread over time by having the subscriber computers randomly select connection times within the general boundaries of a specified schedule of connections (e.g., a randomly selected time anywhere within a half hour, plus or minus, of each scheduled connection time).

[0100] When a client computer first initiates a connection to the information server, it sends a first message to the Internet address associated with a router process 270 in the information server. The router selects an application server 272 with at least one available thread and passes back to the client computer an Internet address associated with that application server.

[0101] The client computer then sends a portion of its user profile to the assigned application server. If an administrative update is being requested, the locally accumulated advertising display statistics 218 (see FIG. 4) are also sent to the application server.

[0102] Based on the time of day and the information in the transmitted user profile, the application server determines (A) what type of update is to be performed (i.e., a news item update or an administrative update), and (B) what new information needs to be downloaded to the client computer and what items in the client computer's local information database should be deleted. The application server 272 then makes calls to one or more data servers 274 to collect all the information that needs to be sent to the client computer and then sends those items to the client computer, along with instructions on what items, if any, should be deleted from the client computer's local information database.

[0103] The client computer then loads the received information into its local database, and replaces software modules with received software modules, if any. It also deletes the items, if any, specified for deletion by the information server. Finally, it updates its data access tables 186 to incorporate all the changes to the information from database so that the client computer is ready to display news items and advertisements in each information category.

[0104] A more detailed explanation of the local database update process is provided by a pseudocode representation of that process in Table 2.

[0105] In one preferred embodiment, when the “client” that is connected to the information server for an update is itself a local area network server, the client downloads all news items into its local database. In a second preferred embodiment, the client/LAN server generates a group profile that represents the union of all news category and subcategory preferences of the subscribers connected to the client computer, and news items are downloaded into the client's local database based on that union group profile. In either embodiment, the screen saver procedures filter out news items in the LAN server's local information database that are not consistent with each subscriber's user profile, thereby showing each subscriber only the subset of. news items corresponding to the subscriber's user profile. In the preferred embodiments, the subscriber level news item filtering is accomplished by setting up the subscriber's data access tables 186 to include only news items corresponding to the subscriber's user profile. In the computers of stand alone subscribers, the filtering of news stories is handled during the data download process, by only downloading news items corresponding to the subscriber's user profile.

[0106] The subscriber level news item filtering function is also used to enable the information server to instruct the subscribers' computers to “black out” an advertisement, without deleting it from the local database. For example, a company may want to suspend its advertisements for a few days after a disaster involving the company. The black out function is achieved by simply removing the corresponding advertisement(s) from the advertisement queues in the data access tables. For this purpose, the information server and subscriber computers may temporarily define a “non-use” information category and a corresponding advertisement queue for keeping track of blacked out items. TABLE 2 Pseudocode Representation of Database Update Procedure Connect to Information Server If Update Type=Administrative /* i.e., not a news story only update */ { Client sends display statistics to server, and clears display statistics upon confirmation that server has successfully received them /* Pool Synchronization */ Server Sends list of items (i.e., advertisement and scripts) that should be included in the client's advertisement and script pools Client deletes items in its advertisement and script pools that are not included in the list received from the Server Client determines what items are missing from its advertisement and script pools Client sends requests to Server for advertisements and scripts determined to be missing from local pools Server sends requested items to Client Client stores received advertisements and scripts in their respective disk directories Client opens all advertisement and script files to determine the static images referenced by those files, but not included in the local static image pool. Client sends requests to Server for static images determined to be missing from local pool Server sends requested items to Client Client stores received static images in their assigned disk directory /* Software Module Synchronization */ Client sends message indicate it is ready for software synchro- nization, including date and time of last administrative update Server sends new software modules, if any, based on date and time of last administrative update } For each Category Manager (CMx) { /* CMx.Fetch Procedure: */ Client (CMx.Fetch procedure) sends profile data for CMx to Server, including subcategory data and filter data, if any Server sends items consistent with profile data Client (CMx.Fetch procedure) stores received items in data structures and files for that category Client (CMx.Fetch procedure) deletes items, in FIFO order, for current category which (A) exceed data storage limit in date, (B) exceed item count limit, or (C) exceed specified age limit /* Item storage limits 221 for each category are defined in a  portion of the user profile 194 (see Figure 4) */ } Client updates data access tables Return

Alternate Embodiments and Extensions

[0107] While the present invention has been described with reference to a few specific embodiments, the description is illustrative of the invention and is not to be construed as limiting the invention. Various modifications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined by the appended claims.

[0108] For instance, in an alternate embodiment of the present invention, the server's information database 134 also includes a client catalog which lists all subscriber's authorized to receive news items and advertisements from the server, including a connection password that is checked whenever the subscriber's computer calls the information server for an update, and status information included the last time that each subscriber's computer received updated news items, advertisements, scripts, and software modules.

[0109] In another alternate embodiment, the information server broadcasts information updates to all the subscriber computers, for example by sending an e-mail message or a sequence of e-mail messages containing all news item, advertising, display script and software updates to all the computers of registered subscribers. 

What is claimed is:
 1. An information and advertising distribution system, comprising: a data server for storing and updating a database of information items and advertisements, at least a subset of said information items having an associated information category; a plurality of workstations remotely located from said data server for use by a corresponding set of subscribers; each workstation including: a display device; a communication interface for establishing a communication connection with said data server and for receiving at least a subset of said information items and advertisements in said data server's database; local memory for storing the in(information items and advertisements received from said data server; an information administrator that establishes communication with said data server from time to time so as to update the information items and advertisements stored in said local memory with at least a subset of said information items and advertisements stored by said data server; and an information display controller for displaying on said display device at least a subset of said information items and advertisements stored in said local memory when said workstation meets predefined idleness criteria.
 2. The information and advertising distribution system of claim 1, wherein said information display controller also displays said information items and advertisements on said display device upon request by one of said subscribers using said workstation.
 3. The information and advertising distribution system of claim 1, wherein said data server includes means for receiving new information, for updating said information items stored by said data server with new information items corresponding to said new information and for deleting older ones of said stored information items; said information administrator in at least a subset of said workstations Includes a scheduler that prompts said information administrator to download said information items from said data server so as to update the information items stored in those workstations' local memory more often than said information administrator downloads said advertisements from said data server so as to update the advertisements stored in those workstations' local memory.
 4. The information and advertising distribution system of claim 1, wherein at least a subset of said information items stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; at least a subset of said workstations include a profiler for storing subscriber profile data, said subscriber profile data including data representing subscriber information viewing preferences for viewing information items associated with various ones of said defined set of information categories; and said information display controller includes a filter for excluding from the information items displayed on said display device those of said information items inconsistent with said subscriber information viewing preferences.
 5. The information and advertising distribution system of claim 1, wherein at least a subset of said information items stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; at least a subset of said workstations include a profiler for storing subscriber profile data, said subscriber profile data including data representing subscriber information viewing preferences for viewing information items associated with various ones of said defined set of information categories; and said information administrator includes a filter for excluding from the information items stored in said local memory those of said information items inconsistent with said subscriber information viewing preferences.
 6. The information and advertising distribution system of claim 1, wherein at least a subset of said information items stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; said information display controller displays on said display device, in successive time periods, ones of said information items stored in said local memory associated with successively selected ones of said information categories.
 7. The information and advertising distribution system of claim 1, wherein said local memory of each said workstation stores a plurality of display scripts, each display script for controlling display of at least one information item in conjunction with display of at least one advertisement; and said information display controller displays on said display device, in successive time periods, said information items stored in said local memory in conjunction with advertisements stored in said local memory, utilizing successive ones of said display scripts stored in said local memory during said successive time periods.
 8. The information and advertising distribution system of claim 7, wherein at least a subset of said information items stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; at least a subset of said advertisements stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; and said information display controller displays on said display device, during each of at least a subset of said successive time periods, ones of said information items and advertisements associated with a same one of said defined set of information categories.
 9. The information and advertising distribution system of claim 7, wherein said information items stored in said local memory and in said data server each have associated therewith an information category selected from a defined set of information categories; said advertisements stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; and said information display controller displays on said display device, during each said successive time period, at least one of said locally stored advertisements and ones of the locally stored information items associated with a selected one of said defined set of information categories, wherein said selected one of said defined set of information categories changes during successive time periods.
 10. The information and advertising distribution system of claim 1, wherein said data server stores a set of display scripts, each display script for controlling display of at least one information item in conjunction with display of at least one advertisement; said local memory of each said workstation stores at least a subset of said display scripts; said information administrator updates the display scripts stored in said local memory with at least a subset of said display scripts stored by said data server; and said information display controller displays on said display device, in successive time periods, said information items stored in said local memory in conjunction with advertisements stored in said local memory, utilizing successive ones of said display scripts stored in said local memory during said successive time periods.
 11. The information and advertising distribution system of claim 10, wherein at least a subset of said information items stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; at least a subset of said advertisements stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; and said information display controller displays on said display device, during each of at least a subset of said successive time periods, ones of said information items and advertisements associated with a same one of said defined set of information categories.
 12. The information and advertising distribution system of claim 10, wherein said information items stored in said local memory and in said data server each. have associated therewith an information category selected from a defined set of information categories; said advertisements stored in said local memory and in said data server each have associated therewith at least one information category selected from a defined set of information categories; and said information display controller displays on said display device, during each said successive time period, at least one of said locally stored advertisements and ones of the locally stored information items associated with a selected one of said defined set of information categories, wherein said selected one of said defined set of information categories changes during successive time periods.
 13. An information and advertising distribution system, comprising: a data server for storing and updating a database of information items and advertisements, at least a subset of said information items having an associated information category; a plurality of workstations remotely located from said data server for use by a corresponding set of subscribers; each workstation including: a display device; a communication interface for establishing a communication connection with said data server and for receiving at least a subset of said information items and advertisements in said data server's database; local memory for storing the information items and advertisements received from said data server, an information administrator that updates the information items and advertisements stored in said local memory from time to time with at least a subset of said information items and advertisements stored by said data server, and an information display controller for displaying on said display device at least a subset of said information items and advertisements stored in said local memory when said workstation meets predefined idleness criteria.
 14. An information and advertising display system, comprising: a display device; local memory for storing information items and advertisements; a plurality of display scripts, each display script for controlling display of at least one information item in conjunction with display of at least one advertisement; and an information display controller for displaying on said display device at least a subset of said information items and advertisements stored in said local memory when said workstation meets predefined idleness criteria; wherein said information display controller displays on said display device, in successive time periods, said information items stored in said local memory in conjunction with advertisements stored in said local memory, utilizing successive ones of said display scripts stored in said local memory during said successive time periods. 